﻿namespace Algo
{
    using System.Collections.Generic;
    using System.Diagnostics.Contracts;

    using Algo.CodeContracts;

    using JetBrains.Annotations;

    [ContractClass(typeof(SortStrategyCodeContracts))]
    public interface ISortStrategy
    {
        [NotNull] IEnumerable<T> Sort<T>([NotNull] IEnumerable<T> items, [NotNull] IComparer<T> comparer, [NotNull] IAlgoExtensions extensions);
    }
}
